Detecting locations of a signal at which a variable represented by the signal exhibits significant change may be useful in analyzing and processing signals. In particular, detecting locations that exhibit significant changes in a variable may be useful in analyzing a shape of the signal, content within the signal or the like. Detecting significant changes may be useful in a number of fields, including image processing, audio processing, video processing or any other information processing applications.
In the field of image processing, for example, detecting locations of the image signal where significant changes in intensity occur may be useful in detecting edges within the image. These detected edges typically represent structural properties of the scene of interest, such as discontinuities in depth, discontinuities in surface orientation, changes in material properties, variations in scene illumination or the like.
An image signal includes a plurality of pixel values that represent intensity and/or color at particular locations within a scene of interest. To detect edges within an image signal, an image processor applies a kernel filter to the image. The kernel filter may be viewed as a matrix of weights or multiplication factors. The matrix is typically much smaller than the actual image to which it is applied. A typical kernel matrix used for edge detection, for example, may be three pixels by three pixels (i.e., a 3×3 kernel).
In order for the image processor to detect edges, the image processor may apply the kernel matrix to each of the pixels of the image in turn by sliding the kernel over the image. The image processor centers the kernel on each pixel of the image in turn, and multiplies the pixel values of the 3×3 region around the center pixel by the corresponding weights of the kernel matrix to generate weighted pixel values.
The image processor sums the weighted pixel values to obtain a first order derivative of the 3×3 portion of the image signal. The image processor compares the first order derivative of the 3×3 portion of the image signal to a threshold value and detects an edge when the first order derivative is greater than or equal to the threshold value. Different kernels may be applied to perform different types of filtering.